From e9afb63a01bc0605aee0f17463e397ebc8003f06 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 12 Aug 2020 13:41:53 -0400 Subject: [PATCH] widget-factory: Add more error states Add a label with the .error style class in the configuration dialog, also add another entry validation here, to have it in one place. --- demos/widget-factory/widget-factory.c | 19 +++++++++++++++++++ demos/widget-factory/widget-factory.ui | 21 +++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index d4afff17b2..0b17ed05d4 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -1878,6 +1878,24 @@ age_entry_changed (GtkEntry *entry, } } +static void +validate_more_details (GtkEntry *entry, + GParamSpec *pspec, + GtkEntry *details) +{ + if (strlen (gtk_editable_get_text (GTK_EDITABLE (entry))) > 0 && + strlen (gtk_editable_get_text (GTK_EDITABLE (details))) == 0) + { + gtk_widget_set_tooltip_text (GTK_WIDGET (entry), "Must have details first"); + gtk_widget_add_css_class (GTK_WIDGET (entry), "error"); + } + else + { + gtk_widget_set_tooltip_text (GTK_WIDGET (entry), ""); + gtk_widget_remove_css_class (GTK_WIDGET (entry), "error"); + } +} + static void activate (GApplication *app) { @@ -1959,6 +1977,7 @@ activate (GApplication *app) "reset_icon_size", (GCallback)reset_icon_size, "osd_frame_pressed", (GCallback)osd_frame_pressed, "age_entry_changed", (GCallback)age_entry_changed, + "validate_more_details", (GCallback)validate_more_details, NULL); gtk_builder_set_scope (builder, scope); g_object_unref (scope); diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui index 8e962e4e9f..6ee4a6c742 100644 --- a/demos/widget-factory/widget-factory.ui +++ b/demos/widget-factory/widget-factory.ui @@ -2812,6 +2812,7 @@ microphone-sensitivity-medium-symbolic 1 1 Age… + + + 2 + 3 + + + -- 2.30.2